var express = require('express');
var bodyParser = require('body-parser');
var fs = require('fs');
var app = express();
// app.use(bodyParser.urlencoded({ extended: false }));

var hostName = '127.0.0.1';
var port = 3333;

// 解决加载不了资源文件问题
app.use('/resource',express.static('resource'));
app.all('/*', function(req, res, next) {
  res.header('Access-Control-Allow-Origin', '*');
  res.header('Access-Control-Allow-Headers', 'Origin, X-Requested-With, Content-Type, Accept');
  res.header('Access-Control-Allow-Methods','PUT,POST,GET,DELETE,OPTIONS');
  res.header('X-Powered-By',' 3.2.1')
  res.header('Content-Type', 'application/json;charset=utf-8');

  var url = req.url;
  if(url === '/' || url === '/index.html'){
    // res.header('content-type', 'text/html;charset="utf-8"');
    fs.readFile( './index.html' , function(err,data){
      /*
       一参为文件路径
       二参为回调函数
       回调函数的一参为读取错误返回的信息，返回空就没有错误
       二参为读取成功返回的文本内容
       */
      if(err){
        res.writeHeader(404,{
          'content-type' : 'text/html;charset="utf-8"'
        });
        res.write('<h1>404错误</h1><p>你要找的页面不存在</p>');
        res.end();
      }else{
        res.writeHeader(200,{
          'content-type' : 'text/html;charset="utf-8"'
        });
        res.write(data.toString());
        res.end();
      }
    });
    return false;
  }
  next();
});

app.get('/api/*',function(req,res){
  // console.log('请求url：',req.path)
  // console.log('请求参数：',req.query)

  var fragment = req.path.split('/')
  var fileName = fragment[fragment.length-1]
  fs.readFile('./mockData/'+fileName+'.json', function (err, data) {
    if (err) {
      return console.error(err);
    }
    // console.log('异步读取: ' + data.toString());
    res.send(data.toString());
  });

})

app.get('/get',function(req,res){
  console.log('请求url：',req.path)
  console.log('请求参数：',req.query)
  res.send('这是get请求');
})

app.post('/post',function(req,res){
  console.log('请求参数：',req.body);
  var result = {code:200,msg:'post请求成功'};
  res.send(result);
});

app.listen(port,hostName,function(){
  console.log(`服务器运行在http://${hostName}:${port}`);
});